---
title: Déployez votre site Astro sur Deno
description: Comment déployer votre site Astro sur le web en utilisant Deno.
type: deploy
i18nReady: true
---
import ReadMore from '~/components/ReadMore.astro'

Vous pouvez déployer un site Astro rendu côté serveur sur [Deno Deploy](https://deno.com/deploy), un système distribué qui exécute JavaScript, TypeScript et WebAssembly à la pointe de la technologie, dans le monde entier.

Ce guide comprend des instructions pour le déploiement vers Deno Deploy via les actions sur GitHub ou la CLI de Deno Deploy.

## Prérequis

Ce guide suppose que vous avez déjà installé [Deno](https://deno.com/).

## Configuration du projet

Cette page fournit des instructions pour déployer votre projet Astro sur [Deno Deploy](https://deno.com/deploy) en tant que site rendu côté serveur (SSR).

Pour déployer un site statique, voir [le tutoriel Deno sur le déploiement d'un site statique](https://docs.deno.com/deploy/tutorials/static-site).

### Adaptateur pour le SSR

Pour activer SSR dans votre projet Astro et le déployer sur Deno Deploy :

Ajoutez [l'adaptateur Deno][Deno adapter] pour activer SSR dans votre projet Astro avec la commande `astro add` suivante. Cela installera l'adaptateur et apportera les changements appropriés à votre fichier `astro.config.mjs` en une seule étape.

```bash
npx astro add deno
```

Si vous préférez installer l'adaptateur manuellement, suivez les deux étapes suivantes :

1. Installez [l'adaptateur `@astrojs/deno`][Deno adapter] aux dépendances de votre projet en utilisant votre gestionnaire de paquets préféré. Si vous utilisez npm ou si vous n'êtes pas sûr, exécutez ceci dans le terminal :

    ```bash
   npm install @astrojs/deno
    ```

1. Mettez à jour votre fichier de configuration du projet `astro.config.mjs` avec les changements ci-dessous.

     ```js ins={3,6-7}
    // astro.config.mjs
    import { defineConfig } from 'astro/config';
    import deno from '@astrojs/deno';

    export default defineConfig({
      output: 'server',
      adapter: deno(),
    });
    ```

Ensuite, mettez à jour votre script `preview` dans `package.json` avec le changement ci-dessous.

    ```json del={8} ins={9}
    // package.json
    {
      // ...
      "scripts": {
        "dev": "astro dev",
        "start": "astro dev",
        "build": "astro build",
        "preview": "astro preview"
        "preview": "deno run --allow-net --allow-read --allow-env ./dist/server/entry.mjs"
      }
    }
    ```

Vous pouvez maintenant utiliser cette commande pour prévisualiser votre site Astro de façon locale avec Deno.

    ```bash
    npm run preview
    ```

## Comment déployer un site Astro en SSR

Vous pouvez déployer Deno Deploy via les actions GitHub ou en utilisant l'interface de ligne de commande (CLI) de Deno Deploy.

### Déploiement des actions GitHub

Si votre projet est stocké sur GitHub, le [site Deno Deploy](https://dash.deno.com/) vous guidera dans la mise en place des actions GitHub pour déployer votre site Astro.

1. Poussez votre code vers un dépôt GitHub public ou privé.

2. Connectez-vous sur [Deno Deploy](https://dash.deno.com/) avec votre compte GitHub, et cliquez sur [New Project](https://dash.deno.com).

3. Sélectionnez votre dépôt, la branche à partir de laquelle vous voulez déployer, et sélectionnez le mode **GitHub Action**. (Votre site Astro nécessite une étape de compilation, et ne peut pas utiliser le mode Automatique).

4. Dans votre projet Astro, créez un nouveau fichier `.github/workflows/deploy.yml` et collez le YAML ci-dessous. Ceci est similaire au YAML donné par Deno Deploy, avec les étapes supplémentaires nécessaires pour votre site Astro.

    ```yaml
    name: Deploy
    on: [push]

    jobs:
      deploy:
        name: Deploy
        runs-on: ubuntu-latest
        permissions:
          id-token: write # Nécessaire pour l'authentification avec Deno Deploy
          contents: read # Nécessaire pour cloner le dépôt

        steps:
          - name: Clone repository
            uses: actions/checkout@v4

          # Vous n'utilisez pas npm ? Remplacez `npm ci` par `yarn install` ou `pnpm i`
          - name: Install dependencies
            run: npm ci
    
          # Vous n'utilisez pas npm ? Remplacez `npm run build` par `yarn build` ou `pnpm run build`.
          - name: Build Astro
            run: npm run build

          - name: Upload to Deno Deploy
            uses: denoland/deployctl@v1
            with:
              project: my-deno-project # TODO: remplacez par le nom du projet Deno Deploy
              entrypoint: server/entry.mjs
              root: dist
    ```

5. Après avoir validé ce fichier YAML et l'avoir poussé sur GitHub sur la branche de déploiement configurée, le déploiement devrait commencer automatiquement !

Vous pouvez suivre la progression en utilisant l'onglet "Actions" sur votre page de dépôt GitHub, ou sur [Deno Deploy](https://dash.deno.com).


### Déploiement CLI

1. Installez le [Deno Deploy CLI](https://docs.deno.com/deploy/manual/deployctl).

    ```bash
    deno install --allow-read --allow-write --allow-env --allow-net --allow-run --no-check -r -f https://deno.land/x/deploy/deployctl.ts
    ```

3. Exécutez l'étape de compilation de votre Astro.

    ```bash
    npm run build
    ```

3. Exécutez `deployctl` pour déployer !

    Dans la commande ci-dessous, remplacez `<ACCESS-TOKEN>` par votre [Personal Access Token](https://dash.deno.com/account#access-tokens) et `<MY-DENO-PROJECT>` par le nom de votre projet Deno Deploy.

    ```bash
    DENO_DEPLOY_TOKEN=<ACCESS-TOKEN> deployctl deploy --project=<MY-DENO-PROJECT> --no-static --include=./dist ./dist/server/entry.mjs
    ```

    Vous pouvez suivre tous vos déploiements sur [Deno Deploy](https://dash.deno.com).

4. (Optionnel) Pour simplifier la construction et le déploiement en une seule commande, ajoutez un script `deploy-deno` dans `package.json`.

    ```json ins={9}
    // package.json
    {
      // ...
      "scripts": {
        "dev": "astro dev",
        "start": "astro dev",
        "build": "astro build",
        "preview": "deno run --allow-net --allow-read --allow-env ./dist/server/entry.mjs",
        "deno-deploy": "npm run build && deployctl deploy --project=<MY-DENO-PROJECT> --no-static --include=./dist ./dist/server/entry.mjs"
      }
    }
    ```

    Vous pouvez alors utiliser cette commande pour construire et déployer votre site Astro en une seule étape.

    ```bash
    DENO_DEPLOY_TOKEN=<ACCESS-TOKEN> npm run deno-deploy
    ```


<ReadMore>En savoir plus sur [SSR in Astro](/fr/guides/server-side-rendering/).</ReadMore>

[Deno adapter]: https://github.com/denoland/deno-astro-adapter
